package com.atguigu.tingshu.payment.service;

import com.wechat.pay.java.service.payments.model.Transaction;
import jakarta.servlet.http.HttpServletRequest;

import java.util.Map;

public interface WxPayService {

    /**
     * 获取微信支付所需参数
     * @param paymentType 支付类型：订单、充值
     * @param orderNo 订单编号
     * @return {}小程序微信支付拉起参数
     */
    Map<String, String> getMiniProgramPayParam(String paymentType, String orderNo);

    /**
     * 根据商户侧订单编号查询微信支付状态
     * @param orderNo
     * @return
     */
    Boolean queryPayStatus(String orderNo);

    /**
     * 用户微信付款后，微信调用该接口通知商户用户支付结果
     * @param request
     * @return
     */
    Map<String, String> paySuccessNotify(HttpServletRequest request);

    /**
     * 用户付款成功后，更新本地交易记录以及对应订单或者充值记录
     * @param transaction
     */
    void updatePaymentInfo(Transaction transaction);
}
